/**
 * 
 */
package com.fashop.service.impl;

import java.util.List;

import javax.annotation.Resource;

import org.springframework.stereotype.Service;

import com.fashop.bean.Result;
import com.fashop.bean.local.ListadoLocalOut;
import com.fashop.bean.local.LocalIn;
import com.fashop.bean.local.LocalOut;
import com.fashop.dao.LocalDao;
import com.fashop.enumeration.StateTransactionEnum;
import com.fashop.jpa.Local;
import com.fashop.mapper.GenericMapper;
import com.fashop.service.LocalService;

/**
 * @author Alan Dávila
 * e-mail ustargab@gmail.com
 * date 14/01/2014 23:29:05
 */
@Service("localServiceImpl")
public class LocalServiceImpl implements LocalService {

	@Resource(name = "localDaoImpl")
	private LocalDao localDaoImpl;
	@Resource(name = "localMapperIn")
	private GenericMapper<LocalIn, Local> localMapperIn;
	@Resource(name = "localMapperOut")
	private GenericMapper<Local, LocalOut> localMapperOut;
	@Resource(name = "listadoLocalMapperOut")
	private GenericMapper<List<Local>, List<LocalOut>> listadoLocalMapperOut;
	/* (non-Javadoc)
	 * @see com.fashop.service.LocalService#get(com.fashop.bean.local.LocalIn)
	 */
	public LocalOut get(LocalIn local) {
		Local entrada = localMapperIn.map(local);
		Local nuevo = localDaoImpl.get(entrada);
		Result result = new Result(StateTransactionEnum.GET.toString());
		LocalOut respuesta = localMapperOut.map(nuevo);
		if (respuesta == null) {
			respuesta = new LocalOut();
			result.setEstado(StateTransactionEnum.ERROR.toString());
		}
		respuesta.setResult(result);
		return respuesta;
	}

	/* (non-Javadoc)
	 * @see com.fashop.service.LocalService#listado(java.lang.Long)
	 */
	public ListadoLocalOut listado(final Long idempresa) {
		List<Local> listadoNuevo = localDaoImpl.listado(idempresa);
		List<LocalOut> respuesta = listadoLocalMapperOut.map(listadoNuevo);
		Result result = new Result(StateTransactionEnum.GET.toString());
		ListadoLocalOut listadoRespuesta = new ListadoLocalOut();
		if (respuesta == null) {
			result.setEstado(StateTransactionEnum.ERROR.toString());
		}
		listadoRespuesta.setListado(respuesta);
		return listadoRespuesta;
	}

}
